home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Mania 5
/
MacMania 5.toast
/
/
Tools&Utilities
/
BibTeX ƒ
/
BibTeX.ReadMe
< prev
next >
Wrap
Text File
|
1996-11-19
|
17KB
|
366 lines
# ###################################################################
#
# FILE: "BibTeX.ReadMe"
# created: 4/2/96 {6:50:21 pm}
# last update: 19/11/96 {2:23:43 pm}
# Author: Vince Darley
# E-mail: <mailto:vince@das.harvard.edu>
# mail: Division of Applied Sciences, Harvard University
# Oxford Street, Cambridge MA 02138, USA
# www: <http://www.fas.harvard.edu/~darley/>
#
# Mac port copyright (C) 1996 Vince Darley.
#
# Freely distributable, please report bugs (and fixes) to
# the author.
#
# ###################################################################
This is BibTeX (fat)
====================
Contents:
(i) Description of BibTeX's function and purpose.
(ii) Feature list for this version of BibTeX for MacOS.
(iii) Using BibTeX with the editor 'Alpha'
(iv) Technical details, compilation, to-do's,...
(v) Version history.
BibTeX is the bibliography handling tool related to the TeX/LaTeX
typesetting system (available on almost all conceivable OS platforms).
When a document is typeset with LaTeX, an auxiliary file (with extension
'.aux') is generated. This auxiliary file contains, amongst other things,
a list of references (to books, articles, research reports, web-url's,...)
cited in the original document. BibTeX takes this list, together with the
name of a style file (extension '.bst') and a list of bibliography
databases (extension '.bib') which are also given in the auxiliary file,
and produces a wonderfully formatted list of references which the LaTeX
system subsequently (and automatically) appends to your typeset document.
Hence BibTeX is really not at all useful without TeX/LaTeX (there are
several freeware/shareware/commercial versions for the MacOS: OzTeX,
CMacTeX, DirecTeX Pro, Textures). In fact this port of BibTeX is now
distributed with OzTeX 2.0 or newer (although the actual version shipping
with OzTeX can lag behind the latest by a release or two). It is useful
to have a good text editor which knows about the particular format of LaTeX
documents: on the Mac, the editor Alpha is indispensible in this regard,
both for editing and for its apple-event communication with the various
parts of a LaTeX system.
For those who think this sounds a bit too complicated, the benefits in
terms of quality of output (both textual and mathematical) and automatic
generation of all manner of numbering schemes (figures, equations,
sections), and document parts (table of contents, index, bibliography),
together with cross-platform availability, mean that many people consider
it the _best_ current system for producing quality documents.
Here are some links for further information:
• Mathematical relevance: <http://e-math.ams.org/>
• General TeX documentation: <http://www.cl.cam.ac.uk/TeXdoc/TeXdocs.html>
• Archive of LaTeX documenation: <http://www.loria.fr/tex/english/index.html>
• More LaTeX links: <http://molscat.giss.nasa.gov/LaTeX/externals.html>
• The editor 'Alpha': <http://www.cs.umd.edu/~keleher/alpha.html>
• Various TeX-related links: <http://www.bluesky.com/TeXlinks>
• CMacTeX: <http://www.math.tamu.edu/~tkiffe/cmactex.html>
• OzTeX: <http://www.kagi.com/authors/akt/oztex.html>
• Textures: <http://www.bluesky.com/>
• Archive of all TeX related material: <http://jasper.ora.com/ctan.html>
Many thanks to Alun Carr, Andy Amann, Richard Chang, Jacques Distler, and
others for helping to track down the bugs my port of BibTeX has had, and
for suggestions on how to improve it.
========================================================================
BibTeX version 1.1.4
It has no known bugs, however, use at your own risk; there is no
warranty....
Feature list:
• Basic features
- Processes .aux files
- Examine new or old log files and cmd-click to jump to errors,
warnings, etc. in your editor.
- Very fast (now more than 10 times faster!).
- Friendly to other applications (actually calls WaitNextEvent);
- Fat binary; runs on PPC or 68k machines;
- Copes with both Unix and Mac standard eol characters.
- Internet Config aware
• TeX details:
- Switchable between 'big' and 'small' modes. The 'big' mode increases
the size of biobiography resources such as the number of strings allowed.
This should let you use 'Camel' the up-and-coming bibliography stuff for
LaTeX2e;
- Search path (for .bib, .bst files) is as follows: (1) The two paths
you set in the options dialog (2) the "BibTeX inputs" folder,
(3) the location of the '.aux' file being processed. This search
path is used for both .bst and .bib files, although you can of course
keep them in separate directories if you like;
- Source code available;
• Interface details:
- Supports high-level apple events etc. so you can drag a '.aux' file (or
several) onto it for processing, or send it an odoc event from Alpha...
- You can command-click on warnings, errors and filenames in
the log window to leap to the correct file, line, error position
etc. in your favorite editor. Read the section 'Apple-events and
BibTeX' for more details. To use this feature with the editor
'Alpha', copy the contents of the file 'AlphaBibScripts.tcl' to
your 'prefs.tcl' in Alpha.
- Links from the about box to the BibTeX web page, so you can check
for upgrades.
- If available, it uses Internet Config for file types of the .blg, .bbl
files it creates. If you make BibTeX ('Vbib') the creator of
.blg files, you can double click them to open them in the log window.
- Balloon help is available for all dialog box items.
This version of BibTeX is totally free. If you like it, feel free to
send email, postcards, cash, registrations to shareware you've written,...
but there is no obligation.
Note that the application's partition is generous at 400k by default. I
think it should work with 375k on 680x0 machines, and 300k on PPC machines,
so you could lower the application's partition size.
========================================================================
Apple-Events and BibTeX
BibTeX can be triggered to process '.aux' files by being sent a standard
'odoc' event. Versions of Alpha newer than 6.2 will do this without any
configuration on your part. If you're using an old version of Alpha (pre
6.2), download a new version (see the hyperlinks above); (Also have a look
at my package "Vince's Additions" which contains some useful bibliography
conversion tools). If you don't have Alpha, download it immediately; it's
easily the best editor for TeX, LaTeX, C, C++ etc. (IMHO).
As of version 1.1.4, command-clicking in the log window will now send GURL
'bibresult' events. To make use of these, open Internet Config, select
'helpers' and 'add' a helper for 'bibresult', and select as helper your
editor. Of course your editor needs to be able to receive and interpret
GURL bibresults. I've enclosed some procedures for Alpha which do this,
but if you use BBEdit/TeXtures or something else, you're currently on your
own.
The format of the 'bibresult' GURL event is as follows:
bibresult:FULLFILENAME:MESSAGE
where FULLFILENAME is a full path description to the base '.aux' file or
'Unknown', and MESSAGE is any of the following:
The top-level auxiliary file: FILENAME.aux
A level-X auxiliary file: FILENAME.aux
Warning--I didn't find a database entry for "ENTRY"
Database file #X: FILENAME.bib
Warning--WARNING ENTRY
The style file: FILENAME.bst
ERROR---line LINENUM of file FILENAME a 'UP-TO-ERROR' at POSITION
where X is an integer; FILENAME is a just the name, with no path given;
ENTRY is a citation key such as 'Darley1996'; WARNING is a standard
BibTeX warning (such as 'empty title in'); ERROR is a standard BibTeX
error (such as 'Repeated entry'); LINENUM is the line number of an
error; POSITION is the character position in that line at which the
error was detected; UP-TO-ERROR is the string of characters from the
beginning of the line to the start of the error, with braces {} replaced
by ‘’ because of some IC/AE problem.
The Tcl procedures I've written for Alpha interpret these messages and take
the appropriate action: opening a file; finding and highlighting an error;
adding a '.bib' file to the \bibliography environment; making a new entry
in an existing '.bib' file,… To use these scripts, copy the contents of the
file 'BibTeXAlphaScripts.tcl' to your 'prefs.tcl' in Alpha (or read the
file for other installation options).
Problems/Bugs:
Since BibTeX sends actual line numbers and positions, if you're correcting
a lot of errors/warnings, those line number can become out of date. The
receiving scripts are designed to alleviate this problem (they search
locally for something matching the error), but with heavy editing, these
problems are not completely avoidable.
========================================================================
Technical Stuff:
To Do:
• Write to .blg and .bbl files asynchronously.
• Some minor code tidying.
• Incorporate updated powerplant classes when available.
• A few _minor_ speed improvements are still possible.
• Perhaps switch to using WASTE, instead of TextEdit.
Any offers for help or suggestions for improvements much appreciated --- in
particular if someone wants to get to work on the to-do's, that'd be great.
If you have example code which does something similar to any of the to-do's
(e.g. asynchronous file i/o), and you're happy to let me use it as a
template, then please send me it!
------
Sources:
I'm no longer distributing the sources, since it seems a bit needless, but
if you actually want them, just ask.
Based on the C code of the original MacBibTeX (0.99c) which I grabbed from
CTAN, and code generously donated by Rick Zaccone from his 'Makeindex'.
Icon adapted from one I grabbed off a folder from some collection on the
net. 'IC++' written by Dan Crevier is used for the about box links. I
also use LBalloonTracker by Paul Lalonde which is © 1996 Corporate Software
& Technologies Int. Inc. (CS&T), and very convenient. Many thanks!
------
Compilation (with CodeWarrior 10):
Obtain the library 'MoreFiles' (preferably version 1.4.3 or newer), which
should be available from the info-mac archives.
• Open the source code folder
• Compile BibTeX68k.µ
• Compile BibTeXPPC.µ
Move the resulting application "BibTeX" up one level so it can find 'BibTeX
inputs'. You may need to adjust the memory allocation (with Get Info), but
beyond that you're set.
-----
Personalisation:
You can now set BibTeX search paths using the options dialog, but if for
some peculiar reason you want to set more than two different paths, in
addition to the defaults, then you can do so using ResEdit:
You can edit a string resource with ResEdit to specify your own search
path. To do this open the app with ResEdit and look at the STR# resource
called "Path". You can add entries which look like this:
'2:Hard Disk:My Search Path:'; the '2' signifies to BibTeX that this is
a complete path specification. If you prefer, '0:' indicates
a path relative to the .aux file, and '1:' relative to the BibTeX
application.
------
Version History:
1.1.4 Fixed crashing bug when cmd-clicking at the end of the log window.
Fixed a couple small GUI buglets. Added processing time message
to end of log window. Command clicking in opened .blg files sends
correct file information now. Minor changes to about box, and to
Tcl scripts for Alpha communication.
Fixed so prefs file has an icon; startup will be slow the first
time, because BibTeX will have to rewrite your preferences.
Added an icon resource for TEXT files which can be used for .blg
log files. Set this up in Internet Config, and you can double
click .blg files to launch. Now you can look at old .blg files and
decide if you wish to regenerate them (cmd-G = Go will reprocess
the corresponding .aux file), or cmd-click to edit problems using
your editor. Fixed quite old (I think) bug in which you could have
two log windows after hitting 'Cancel' in the options dialog.
Feature change: BibTeX now rejects any text file that's not '.aux'
or '.blg'; before it would be passed to the core code and of course
cause errors. Added more Balloon help. Feature change: type/creator
of .blg and .bbl files created are taken from Internet Config if
possible, if not then from the .aux file as before.
Copes with filenames containing spaces. Remember if you use
spaces, your files will not work on other platforms. Fixed a
minor buffer-overflow problem in which not all warnings would
be given in the log window. Added command-clicking features
to the log window (very useful and cool new feature!). Fixed
one source of preferences problems (startup with no preferences
file, quit and restart => default preferences are garbage).
1.1.3 Really fixed end-of-file problem. Other minor changes.
1.1.2 Fixed setting end-of-files correctly. I somehow reintroduced this
bug when I rewrote all the file i/o stuff. Balloon help in dialogs.
1.1.1 Added options 'Stay open on warning', 'Stay open on error' which
counter-act the 'Quit when finished' option, and leave BibTeX
open if anything went wrong.
Fixed the 'text-jumping' visual bug in the log window (thanks
to a helpful soul on comp.sys.mac.programmer.codewarrior).
Updated to MoreFiles 1.4.3.
Preferences file now has its version number updated if necessary
when you start BibTeX, and I always create a preferences file now,
and any old preferences are updated with any new options.
This fixes an old 'bug' in which BibTeX would take a long time
starting up, because it's looking for a preferences file, or
trying to read information from it which doesn't exist.
Fixed a subtle 68k only bug which has been around for a long time,
but only now reared its head --- caused horrible crashes on 68k
machines, somewhat randomly since useful memory was being
over-written. However it's fixed now.
Fixed a small bug introduced in 1.10, which would show up only
after multiple runs, especially after a fatal error, and could
result in a crash.
Added message to the log window after a fatal error.
1.1.0 Did some serious profiling and optimisation. Opening files is
really rather slow on MacOS, probably due to the emulated nature
of the file-system.
Now about 10+ times faster than 1.06. Rough timing is as follows:
v1.06 75secs, v1.07 62secs, v1.10 7secs
(All using Speed Doubler on a 5300cs on a large BibTeX run)
Huge rewrite of all the IO code: uses PowerPlant buffered IO classes,
which makes everything rather simpler, and on the whole a lot faster.
The code is much, much cleaner now, as I've cleared out a lot of the
old vestiges of MakeIndex and the ancient web2c source code has been
modernised. Therefore the BibTeX <-> Interface links are simple now.
Added option to monopolise the CPU.
Significant interface improvements:
You can now set two folders to search in the options dialog box,
(but the old technique of using Resedit still works). Note that
by default BibTeX now searches in:
• The same folder as the '.aux' file being processed.
• The folder 'BibTeX inputs' located wherever the BibTeX application
resides on your hard drive.
• Any folders you add manually using ResEdit (not normally necessary)
• The two folders you specify in your preferences.
Added links from the 'about box' to the BibTeX web-page, and to
mail me, etc.
Recompiled using Codewarrior 10
1.07 (Never released publicly)
Significant internal changes:
(i) Speed increases.
(ii) Increased sizes of things for 'Big' mode. This version of BibTeX
should support Camel (the up-and-coming LaTeX 2e bibliography system).
(iii) Added a couple of options which were requested:
'beep when finished' and 'no log window'.
1.06 Now copes with extended character set 'üöé...'. Not all TeX
implementations allow them, but if you pass one to BibTeX, it
will happily output it, assuming your version of TeX can cope.
Changed name of log window.
1.05 Recompiled with CW9, updated to take account of Powerplant
changes. Cosmetic change when selecting 'go' to re-run
a file - the window is now cleared first.
1.04 Minor (non-fatal) bug fixes --- all files properly closed and
flushed after a bibtex error, file eof's set correctly for .bbl
and .blg files.
Thanks for the bug reports!
1.03 Minor changes --- it now gives a message 'BibTeX run complete.'
in the log window, rather than just finishing. Documentation
update. I've fixed the FREF/BNDL problems, so drag'n'drop
really should work now ;-)
1.02 Switchable between Big and Small. Uses new memory allocation
scheme from Rick, so temporary memory is used rather than the
system heap. This means the application's given partition can
be much smaller (300k works for me). Added fref 'TEXT' resource
which was missing previously (so drag and drop will work under
all circumstances now).
1.01 Copes with Unix as well as Mac EOL characters
1.0 Original; soon to be distributed with OzTeX 2.0